home *** CD-ROM | disk | FTP | other *** search
Oberon Document | 1996-04-07 | 14.9 KB | 262 lines | [oODC/obnF] |
- Documents.StdDocumentDesc
- Documents.DocumentDesc
- Containers.ViewDesc
- Views.ViewDesc
- Stores.StoreDesc
- Documents.ModelDesc
- Containers.ModelDesc
- Models.ModelDesc
- Stores.ElemDesc
- TextViews.StdViewDesc
- TextViews.ViewDesc
- TextModels.StdModelDesc
- TextModels.ModelDesc
- TextModels.AttributesDesc
- Geneva
- Geneva
- Geneva
- Geneva
- MODULE MacMemoryMgr;
- IMPORT SYSTEM, MacTypes;
- CONST
- maxSize* = 0800000H; (*Max data block size is 8 megabytes*)
- defaultPhysicalEntryCount* = 8;
- (* values returned from the GetPageState function *)
- kPageInMemory* = 0;
- kPageOnDisk* = 1;
- kNotPaged* = 2;
- (* masks for Zone->heapType field *)
- k32BitHeap* = 1; (* valid in all Memory Managers *)
- kNewStyleHeap* = 2; (* true if new Heap Manager is present *)
- kNewDebugHeap* = 4; (* true if new Heap Manager is running in debug mode on this heap *)
- (* size of a block in bytes *)
- Ptr* = MacTypes.Ptr;
- Handle* = MacTypes.Handle;
- Size* = LONGINT;
- GrowZoneProcPtr* = MacTypes.ProcPtr; (* FUNCTION GrowZone(cbNeeded: Size): LONGINT; *)
- PurgeProcPtr* = MacTypes.ProcPtr; (* PROCEDURE Purge(blockToPurge: Handle); *)
- GrowZoneUPP* = MacTypes.UniversalProcPtr;
- PurgeUPP* = MacTypes.UniversalProcPtr;
- UserFnUPP* = MacTypes.UniversalProcPtr;
- THz* = POINTER TO Zone;
- Zone* = RECORD
- bkLim*: Ptr;
- purgePtr*: Ptr;
- hFstFree*: Ptr;
- zcbFree*: LONGINT;
- gzProc*: GrowZoneUPP;
- moreMast*: INTEGER;
- flags*: INTEGER;
- cntRel*: INTEGER;
- maxRel*: INTEGER;
- cntNRel*: INTEGER;
- heapType*: SHORTINT; (* Byte *)
- unused*: SHORTINT; (* Byte *)
- cntEmpty*: INTEGER;
- cntHandles*: INTEGER;
- minCBFree*: LONGINT;
- purgeProc*: PurgeUPP;
- sparePtr*: Ptr;
- allocPtr*: Ptr;
- heapData*: INTEGER;
- END;
- MemoryBlock* = RECORD
- address*: Ptr;
- count*: LONGINT;
- END;
- LogicalToPhysicalTable* = RECORD
- logical*: MemoryBlock;
- physical*: ARRAY [untagged] defaultPhysicalEntryCount OF MemoryBlock;
- END;
- PageState* = INTEGER;
- StatusRegisterContents* = INTEGER;
- CONST
- uppGrowZoneProcInfo* = 0000000F0H; (* PROCEDURE (4 byte param): 4 byte result; *)
- uppPurgeProcInfo* = 0000000C0H; (* PROCEDURE (4 byte param); *)
- uppUserFnProcInfo* = 000009802H; (* Register PROCEDURE (4 bytes in A0); *)
- PROCEDURE [code] NewGrowZoneProc*(userRoutine: GrowZoneProcPtr): GrowZoneUPP 02EH, 09FH;
- PROCEDURE [code] NewPurgeProc*(userRoutine: PurgeProcPtr): PurgeUPP 02EH, 09FH;
- PROCEDURE [code] CallGrowZoneProc*(cbNeeded: Size; userRoutine: GrowZoneUPP): LONGINT 020H, 05FH, 04EH, 090H;
- PROCEDURE [code] CallPurgeProc*(blockToPurge: Handle; userRoutine: PurgeUPP) 020H, 05FH, 04EH, 090H;
- PROCEDURE [code] GetApplLimit*(): Ptr 02EH, 0B8H, 001H, 030H;
- PROCEDURE [code] SystemZone*(): THz 02EH, 0B8H, 002H, 0A6H;
- PROCEDURE [code] ApplicationZone*(): THz 02EH, 0B8H, 002H, 0AAH;
- PROCEDURE [code] GZSaveHnd*(): Handle 02EH, 0B8H, 003H, 028H;
- PROCEDURE [code] TopMem*(): Ptr 02EH, 0B8H, 001H, 008H;
- PROCEDURE [code] MemError*(): MacTypes.OSErr 03EH, 0B8H, 002H, 020H;
- PROCEDURE [code] GetZone*(): THz 0A1H, 01AH, 02EH, 088H;
- PROCEDURE [code] NewHandle*(byteCount: Size): Handle 020H, 01FH, 0A1H, 022H, 02EH, 088H;
- PROCEDURE [code] NewHandleSys*(byteCount: Size): Handle 020H, 01FH, 0A5H, 022H, 02EH, 088H;
- PROCEDURE [code] NewHandleClear*(byteCount: Size): Handle 020H, 01FH, 0A3H, 022H, 02EH, 088H;
- PROCEDURE [code] NewHandleSysClear*(byteCount: Size): Handle 020H, 01FH, 0A7H, 022H, 02EH, 088H;
- PROCEDURE [code] HandleZone*(h: Handle): THz 020H, 05FH, 0A1H, 026H, 02EH, 088H;
- PROCEDURE [code] RecoverHandle*(p: Ptr): Handle 020H, 05FH, 0A1H, 028H, 02EH, 088H;
- PROCEDURE [code] RecoverHandleSys*(p: Ptr): Handle 020H, 05FH, 0A5H, 028H, 02EH, 088H;
- PROCEDURE [code] NewPtr*(byteCount: Size): Ptr 020H, 01FH, 0A1H, 01EH, 02EH, 088H;
- PROCEDURE [code] NewPtrSys*(byteCount: Size): Ptr 020H, 01FH, 0A5H, 01EH, 02EH, 088H;
- PROCEDURE [code] NewPtrClear*(byteCount: Size): Ptr 020H, 01FH, 0A3H, 01EH, 02EH, 088H;
- PROCEDURE [code] NewPtrSysClear*(byteCount: Size): Ptr 020H, 01FH, 0A7H, 01EH, 02EH, 088H;
- PROCEDURE [code] PtrZone*(p: Ptr): THz 020H, 05FH, 0A1H, 048H, 02EH, 088H;
- PROCEDURE [code] MaxBlock*(): LONGINT 0A0H, 061H, 02EH, 080H;
- PROCEDURE [code] MaxBlockSys*(): LONGINT 0A4H, 061H, 02EH, 080H;
- PROCEDURE [code] StackSpace*(): LONGINT 0A0H, 065H, 02EH, 080H;
- PROCEDURE [code] NewEmptyHandle*(): Handle 0A1H, 066H, 02EH, 088H;
- PROCEDURE [code] NewEmptyHandleSys*(): Handle 0A5H, 066H, 02EH, 088H;
- PROCEDURE [code] HLock*(h: Handle) 020H, 05FH, 0A0H, 029H;
- PROCEDURE [code] HUnlock*(h: Handle) 020H, 05FH, 0A0H, 02AH;
- PROCEDURE [code] HPurge*(h: Handle) 020H, 05FH, 0A0H, 049H;
- PROCEDURE [code] HNoPurge*(h: Handle) 020H, 05FH, 0A0H, 04AH;
- PROCEDURE [code] HLockHi*(h: Handle) 020H, 05FH, 0A0H, 064H, 0A0H, 029H;
- PROCEDURE [code] TempNewHandle*(logicalSize: Size; VAR resultCode: MacTypes.OSErr): Handle 03FH, 03CH, 000H, 01DH, 0A8H, 08FH;
- PROCEDURE [code] TempMaxMem*(VAR grow: Size): Size 03FH, 03CH, 000H, 015H, 0A8H, 08FH;
- PROCEDURE [code] TempFreeMem*(): LONGINT 03FH, 03CH, 000H, 018H, 0A8H, 08FH;
- (* Temporary Memory routines renamed, but obsolete, in System 7.0 and later. *)
- PROCEDURE [code] TempHLock*(h: Handle; VAR resultCode: MacTypes.OSErr) 03FH, 03CH, 000H, 01EH, 0A8H, 08FH;
- PROCEDURE [code] TempHUnlock*(h: Handle; VAR resultCode: MacTypes.OSErr) 03FH, 03CH, 000H, 01FH, 0A8H, 08FH;
- PROCEDURE [code] TempDisposeHandle*(h: Handle; VAR resultCode: MacTypes.OSErr) 03FH, 03CH, 000H, 020H, 0A8H, 08FH;
- PROCEDURE [code] TempTopMem*(): Ptr 03FH, 03CH, 000H, 016H, 0A8H, 08FH;
- PROCEDURE [code] InitApplZone* 0A0H, 02CH;
- PROCEDURE [code] initZone 0A0H, 019H;
- PROCEDURE [nostkchk] InitZone*(pgrowZone: GrowZoneUPP; cmoreMasters: INTEGER; limitPtr: Ptr; startPtr: Ptr);
- BEGIN
- SYSTEM.PUTREG(8, SYSTEM.ADR(startPtr));
- initZone;
- END InitZone;
- PROCEDURE [code] SetZone*(hz: THz) 020H, 05FH, 0A0H, 01BH;
- PROCEDURE [code] CompactMem*(cbNeeded: Size): Size 020H, 01FH, 0A0H, 04CH, 02EH, 080H;
- PROCEDURE [code] CompactMemSys*(cbNeeded: Size): Size 020H, 01FH, 0A4H, 04CH, 02EH, 080H;
- PROCEDURE [code] PurgeMem*(cbNeeded: Size) 020H, 01FH, 0A0H, 04DH;
- PROCEDURE [code] PurgeMemSys*(cbNeeded: Size) 020H, 01FH, 0A4H, 04DH;
- PROCEDURE [code] FreeMem*(): LONGINT 0A0H, 01CH, 02EH, 080H;
- PROCEDURE [code] FreeMemSys*(): LONGINT 0A4H, 01CH, 02EH, 080H;
- PROCEDURE [code] ReserveMem*(cbNeeded: Size) 020H, 01FH, 0A0H, 040H;
- PROCEDURE [code] ReserveMemSys*(cbNeeded: Size) 020H, 01FH, 0A4H, 040H;
- PROCEDURE [code] MaxMem*(VAR grow: Size): Size 022H, 05FH, 0A1H, 01DH, 022H, 088H, 02EH, 080H;
- PROCEDURE [code] MaxMemSys*(VAR grow: Size): Size 022H, 05FH, 0A5H, 01DH, 022H, 088H, 02EH, 080H;
- PROCEDURE [code] SetGrowZone*(growZone: GrowZoneUPP) 020H, 05FH, 0A0H, 04BH;
- PROCEDURE [code] SetApplLimit*(zoneLimit: Ptr) 020H, 05FH, 0A0H, 02DH;
- PROCEDURE [code] MoveHHi*(h: Handle) 020H, 05FH, 0A0H, 064H;
- PROCEDURE [code] DisposePtr*(p: Ptr) 020H, 05FH, 0A0H, 01FH;
- PROCEDURE [code] getPtrSize 0A0H, 021H;
- PROCEDURE GetPtrSize*(p: Ptr): Size;
- VAR res: LONGINT;
- BEGIN
- SYSTEM.PUTREG(8, p);
- getPtrSize;
- SYSTEM.GETREG(0, res);
- IF res < 0 THEN
- RETURN 0
- END;
- RETURN res;
- END GetPtrSize;
- PROCEDURE [code] SetPtrSize*(p: Ptr; newSize: Size) 020H, 01FH, 020H, 05FH, 0A0H, 020H;
- PROCEDURE [code] DisposeHandle*(h: Handle) 020H, 05FH, 0A0H, 023H;
- PROCEDURE [code] SetHandleSize*(h: Handle; newSize: Size) 020H, 01FH, 020H, 05FH, 0A0H, 024H;
- PROCEDURE [code] getHandleSize 0A0H, 025H;
- PROCEDURE GetHandleSize*(h: Handle): Size;
- VAR res: LONGINT;
- BEGIN
- SYSTEM.PUTREG(8, h);
- getHandleSize;
- SYSTEM.GETREG(0, res);
- IF res < 0 THEN
- RETURN 0
- END;
- RETURN res;
- END GetHandleSize;
- PROCEDURE [code] ReallocateHandle*(h: Handle; byteCount: Size) 020H, 01FH, 020H, 05FH, 0A0H, 027H;
- PROCEDURE [code] EmptyHandle*(h: Handle) 020H, 05FH, 0A0H, 02BH;
- PROCEDURE [code] HSetRBit*(h: Handle) 020H, 05FH, 0A0H, 067H;
- PROCEDURE [code] HClrRBit*(h: Handle) 020H, 05FH, 0A0H, 068H;
- PROCEDURE [code] MoreMasters* 0A0H, 036H;
- PROCEDURE [code] BlockMove*(srcPtr: Ptr; destPtr: Ptr; byteCount: Size) 020H, 01FH, 022H, 05FH, 020H, 05FH, 0A0H, 02EH;
- PROCEDURE [code] BlockMoveData*(srcPtr: Ptr; destPtr: Ptr; byteCount: Size) 020H, 01FH, 022H, 05FH, 020H, 05FH, 0A2H, 02EH;
- PROCEDURE [code] purgeSpace 0A0H, 062H;
- PROCEDURE PurgeSpace*(VAR total: LONGINT; VAR contig: LONGINT);
- BEGIN
- purgeSpace;
- SYSTEM.GETREG(0, total);
- SYSTEM.GETREG(8, contig)
- END PurgeSpace;
- PROCEDURE [code] HGetState*(h: Handle): SHORTINT 020H, 05FH, 0A0H, 069H, 01EH, 080H;
- PROCEDURE [code] HSetState*(h: Handle; flags: CHAR) 010H, 01FH, 020H, 05FH, 0A0H, 06AH;
- PROCEDURE [code] SetApplBase*(startPtr: Ptr) 020H, 05FH, 0A0H, 057H;
- PROCEDURE [code] MaxApplZone* 0A0H, 063H;
- PROCEDURE [code] HoldMemory*(address: Ptr; count: LONGINT): MacTypes.OSErr 022H, 05FH, 020H, 05FH, 070H, 000H, 0A0H, 05CH, 03EH, 080H;
- PROCEDURE [code] UnholdMemory*(address: Ptr; count: LONGINT): MacTypes.OSErr 022H, 05FH, 020H, 05FH, 070H, 001H, 0A0H, 05CH, 03EH, 080H;
- PROCEDURE [code] LockMemory*(address: Ptr; count: LONGINT): MacTypes.OSErr 022H, 05FH, 020H, 05FH, 070H, 002H, 0A0H, 05CH, 03EH, 080H;
- PROCEDURE [code] LockMemoryContiguous*(address: Ptr; count: LONGINT): MacTypes.OSErr 022H, 05FH, 020H, 05FH, 070H, 004H, 0A0H, 05CH, 03EH, 080H;
- PROCEDURE [code] UnlockMemory*(address: Ptr; count: LONGINT): MacTypes.OSErr 022H, 05FH, 020H, 05FH, 070H, 003H, 0A0H, 05CH, 03EH, 080H;
- PROCEDURE [code] MemoryDispatchA0Result 0A1H, 05CH;
- PROCEDURE [nostkchk] GetPhysical*(VAR addresses: LogicalToPhysicalTable; VAR physicalEntryCount: LONGINT): MacTypes.OSErr;
- VAR res: MacTypes.OSErr;
- BEGIN
- SYSTEM.PUTREG(0, LONG(LONG(00005H)));
- SYSTEM.PUTREG(8, SYSTEM.ADR(addresses));
- SYSTEM.PUTREG(9, physicalEntryCount);
- MemoryDispatchA0Result;
- SYSTEM.GETREG(0, res);
- SYSTEM.GETREG(9, physicalEntryCount);
- RETURN res
- END GetPhysical;
- PROCEDURE [code] DeferUserFn*(userFunction: UserFnUPP; argument: Ptr): MacTypes.OSErr 020H, 01FH, 020H, 05FH, 0A0H, 08FH, 03EH, 080H;
- PROCEDURE [code] DebuggerGetMax*(): LONGINT 070H, 000H, 0A0H, 08DH, 02EH, 080H;
- PROCEDURE [code] DebuggerEnter* 070H, 001H, 0A0H, 08DH;
- PROCEDURE [code] DebuggerExit* 070H, 002H, 0A0H, 08DH;
- PROCEDURE [code] DebuggerPoll* 070H, 003H, 0A0H, 08DH;
- PROCEDURE [code] GetPageState*(address: Ptr): PageState 020H, 05FH, 070H, 004H, 0A0H, 08DH, 03EH, 080H;
- PROCEDURE [code] PageFaultFatal*(): BOOLEAN 070H, 005H, 0A0H, 08DH, 01EH, 080H;
- PROCEDURE [code] DebuggerLockMemory*(address: Ptr; count: LONGINT): MacTypes.OSErr 022H, 05FH, 020H, 05FH, 070H, 006H, 0A0H, 08DH, 03EH, 080H;
- PROCEDURE [code] DebuggerUnlockMemory*(address: Ptr; count: LONGINT): MacTypes.OSErr 022H, 05FH, 020H, 05FH, 070H, 007H, 0A0H, 08DH, 03EH, 080H;
- PROCEDURE [code] EnterSupervisorMode*(): StatusRegisterContents 070H, 008H, 0A0H, 08DH, 03EH, 080H;
- PROCEDURE [code] StripAddress*(theAddress: Ptr): Ptr 020H, 01FH, 0A0H, 055H, 02EH, 080H;
- PROCEDURE [code] Translate24To32*(addr24: Ptr): Ptr 020H, 01FH, 0A0H, 091H, 02EH, 080H;
- PROCEDURE [code] handToHand 0A9H, 0E1H;
- PROCEDURE [nostkchk] HandToHand*(VAR theHndl: Handle): MacTypes.OSErr;
- VAR res: MacTypes.OSErr;
- BEGIN
- SYSTEM.PUTREG(8, theHndl);
- handToHand;
- SYSTEM.GETREG(0, res);
- SYSTEM.GETREG(8, theHndl);
- RETURN res
- END HandToHand;
- PROCEDURE [code] PtrToXHand*(srcPtr: Ptr; dstHndl: Handle; size: LONGINT): MacTypes.OSErr 020H, 01FH, 022H, 05FH, 020H, 05FH, 0A9H, 0E2H, 03EH, 080H;
- PROCEDURE [code] ptrToHand 0A9H, 0E3H;
- PROCEDURE [nostkchk] PtrToHand*(srcPtr: Ptr; VAR dstHndl: Handle; size: LONGINT): MacTypes.OSErr;
- VAR res: MacTypes.OSErr;
- BEGIN
- SYSTEM.PUTREG(8, srcPtr);
- SYSTEM.PUTREG(0, size);
- ptrToHand;
- SYSTEM.GETREG(0, res);
- SYSTEM.GETREG(8, dstHndl);
- RETURN res
- END PtrToHand;
- PROCEDURE [code] HandAndHand*(hand1: Handle; hand2: Handle): MacTypes.OSErr 022H, 05FH, 020H, 05FH, 0A9H, 0E4H, 03EH, 080H;
- PROCEDURE [code] PtrAndHand*(ptr1: Ptr; hand2: Handle; size: LONGINT): MacTypes.OSErr 020H, 01FH, 022H, 05FH, 020H, 05FH, 0A9H, 0EFH, 03EH, 080H;
- PROCEDURE [code] ApplicZone*(): THz 02EH, 0B8H, 002H, 0AAH;
- PROCEDURE [code] MFTempNewHandle*(logicalSize: Size; VAR resultCode: MacTypes.OSErr): Handle 03FH, 03CH, 000H, 01DH, 0A8H, 08FH;
- PROCEDURE [code] MFMaxMem*(VAR grow: Size): Size 03FH, 03CH, 000H, 015H, 0A8H, 08FH;
- PROCEDURE [code] MFFreeMem*(): LONGINT 03FH, 03CH, 000H, 018H, 0A8H, 08FH;
- PROCEDURE [code] MFTempHLock*(h: Handle; VAR resultCode: MacTypes.OSErr) 03FH, 03CH, 000H, 01EH, 0A8H, 08FH;
- PROCEDURE [code] MFTempHUnlock*(h: Handle; VAR resultCode: MacTypes.OSErr) 03FH, 03CH, 000H, 01FH, 0A8H, 08FH;
- PROCEDURE [code] MFTempDisposHandle*(h: Handle; VAR resultCode: MacTypes.OSErr) 03FH, 03CH, 000H, 020H, 0A8H, 08FH;
- PROCEDURE [code] MFTopMem*(): Ptr 03FH, 03CH, 000H, 016H, 0A8H, 08FH;
- PROCEDURE [code] ResrvMem*(cbNeeded: Size) 020H, 01FH, 0A0H, 040H;
- PROCEDURE [code] DisposPtr*(p: Ptr) 020H, 05FH, 0A0H, 01FH;
- PROCEDURE [code] DisposHandle*(h: Handle) 020H, 05FH, 0A0H, 023H;
- PROCEDURE [code] ReallocHandle*(h: Handle; byteCount: Size) 020H, 01FH, 020H, 05FH, 0A0H, 027H;
- END MacMemoryMgr.
- TextControllers.StdCtrlDesc
- TextControllers.ControllerDesc
- Containers.ControllerDesc
- Controllers.ControllerDesc
- TextRulers.StdRulerDesc
- TextRulers.RulerDesc
- TextRulers.StdStyleDesc
- TextRulers.StyleDesc
- TextRulers.AttributesDesc
- Helvetica
- Documents.ControllerDesc
-